Many computers, televisions, and other equipment use on screen displays (OSDs) to display and adjust parameters related to the equipment. For example, OSDs may visually represent the level of volume, contrast, brightness, vertical position, horizontal position, and the like. While the user is adjusting the parameter, the OSD provides visual feedback to the user relating to the adjustment they are performing.
Additional visual feedback may be provided by some OSDs by displaying animation sequences. The animation sequences are intended to help show the user the effect of adjusting a particular parameter on the device. For example, an animation sequence may be used to show the user the effect of adjusting the contrast of a display. Performing these animations, however, can be very intensive for the OSD microcontroller.
Generally, the microcontrollers used within the OSD have difficulty performing the animation sequence. Not only does the microcontroller have to select, time, and display the characters used in the animation sequence, it also has to check the status of many parts of the screen. For example, the microcontroller may check whether a button has been pushed on the device. Each function the microcontroller performs adds more overhead and typically uses more memory stressing an already overloaded microcontroller. Because of all of these operations, most microcontrollers do not have enough power to handle all of these features plus perform the animation sequence.
In addition to storing all of the independent characters used for the animation sequences and the OSD, most OSDs are language dependent. Therefore, the microcontroller has to store and remember characters for all of the different supported languages. This takes up even more memory, space and power within the OSD system.